package elven.codingit.easyutil.dto.page;

import java.io.Serializable;
import java.util.List;

/**
 * 通用的分页Dto
 * @author elven 2016年6月3日
 * @param <T>
 */
public class PageUtilDto<T> implements Serializable{
	
	private long total;	//总数量
	private long totalPage;//总页数
	private long page;	//当前页数
	private long pageRows;//每页展示条数
	private List<T> results;
	
	/**
	 * 给出分页参数,根据填充的页数，每页展示的条数算出
	 * long[0] = 查询开始下标, long[1] = 查询结束下标
	 * @author elven 2016年6月3日
	 */
	public long[] getPageNumber(){
		page = page == 0?1:page;
		pageRows = pageRows == 0?20:pageRows;
		return new long[]{((page-1)*pageRows), page*pageRows};
	}
	
	public long getTotal() {
		return total;
	}
	public void setTotal(long total) {
		this.total = total;
		this.totalPage = total != 0? (total-1) / pageRows+1 : 0;
	}
	public long getTotalPage() {
		return totalPage;
	}
	public void setTotalPage(long totalPage) {
		this.totalPage = totalPage;
	}
	public long getPage() {
		return page;
	}
	public void setPage(long page) {
		this.page = page;
	}
	public long getPageRows() {
		return pageRows;
	}
	public void setPageRows(long pageRows) {
		this.pageRows = pageRows;
	}
	public List<T> getResults() {
		return results;
	}
	public void setResults(List<T> results) {
		this.results = results;
	}

}